import { IsIn, IsNotEmpty, IsString } from "class-validator";

// SupportModels 支持的模型列表
// ['ernie-lite-8k', 'deep-seek-r1'] as const 将数组转换为只读元组类型，保留了数组元素的具体字符串字面量类型。
const SupportModels = ['ernie-lite-8k', 'deep-seek-r1'] as const;

// typeof SupportModels[number] 是索引访问类型。
// typeof SupportModels 获取数组的类型，[number] 表示访问该数组中所有元素的类型，这样就得到了由数组元素组成的联合类型
// 即 'ernie-lite-8k' | 'deep-seek-r1'。
export type ModelsType = typeof SupportModels[number];


export class CreateChatDto {
    @IsString()
    @IsNotEmpty()
    promote: String;

    userId: number;

    @IsIn(SupportModels)
    model: ModelsType
}
